package com.food.user.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.food.user.entity.DietTimeConfig;
import com.food.user.entity.ProductsType;
import com.food.user.entity.ReceiveTimeConfig;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.List;

@Data
@Document(indexName = "foods")
public class StoreInfoModel {

    /**
     * 商铺ID
     */
    @Id
    @Field(type = FieldType.Long,name = "storeInfoId")
    private Long storeInfoId;
    /**
     * 商铺名称
     */
    @Field(type = FieldType.Text,name = "storeInfoName",analyzer = "ik_max_word")
    private String storeInfoName;

    /**
     * 商铺LOGo
     */
    @Field(type = FieldType.Keyword,name = "storeInfoLogo",index = false)
    private String storeInfoLogo;

    /**
     * 地址
     */
    @Field(type = FieldType.Text,name = "storeInfoAddress",analyzer = "ik_max_word")
    private String storeInfoAddress;

    /**
     * 联系人
     */
    @Field(type = FieldType.Keyword,name = "storeInfoLinkMan",index = false)
    private String storeInfoLinkMan;

    /**
     * 联系电话
     */
    @Field(type = FieldType.Keyword,name = "storeInfoPhone",index = false)
    private String storeInfoPhone;

    /**
     * 订餐电话
     */
    @Field(type = FieldType.Keyword,name = "storeInfoOrderPhone",index = false)
    private String storeInfoOrderPhone;

    /**
     * 起送价
     */
    @Field(type = FieldType.Integer,name = "storeInfoInitiatePrice")
    private Integer storeInfoInitiatePrice;

    /**
     * 配送费
     */
    @Field(type = FieldType.Integer,name = "storeInfoDphPrice")
    private Integer storeInfoDphPrice;

    /**
     * 商家公告
     */
    @Field(type = FieldType.Keyword,name = "storeInfoAffiche",index = false)
    private String storeInfoAffiche;

    /**
     * 友情提示
     */
    @Field(type = FieldType.Keyword,name = "storeInfoNotice",index = false)
    private String storeInfoNotice;

    /**
     * 配送服务
     */
    @Field(type = FieldType.Keyword,name = "storeInfoDispatching",index = false)
    private String storeInfoDispatching;

    /**
     * 营业执照
     */
    @Field(type = FieldType.Keyword,name = "storeInfoLicense",index = false)
    private String storeInfoLicense;

    /**
     * 餐饮许可证
     */
    @Field(type = FieldType.Keyword,name = "storeInfoPermit",index = false)
    private String storeInfoPermit;

    /**
     * 配送时间
     */
    @Field(type = FieldType.Keyword,name = "storeInfoDphTime",index = false)
    private String storeInfoDphTime;

    /**
     * 商铺评分
     */
    @Field(type = FieldType.Double,name = "storeInfoStoreScore")
        private Double storeInfoStoreScore;

    /**
     * 菜品评分
     */
    @Field(type = FieldType.Double,name = "storeInfoDishesScore")
    private Double storeInfoDishesScore;

    /**
     * 配送评分
     */
    @Field(type = FieldType.Double,name = "storeInfoDphScore")
    private Double storeInfoDphScore;
    /**
     * 店铺状态
     */
    @Field(type = FieldType.Integer,name = "storeInfoStoreStatus")
    private Integer storeInfoStoreStatus;


    /**
     * 商铺简介
     */
    @Field(type = FieldType.Text,name = "storeInfoStoreIntro",analyzer = "ik_max_word")
    private String storeInfoStoreIntro;

    /**
     * 备注
     */
    @Field(type = FieldType.Keyword,name = "storeInfoRemarks",index = false)
    private String storeInfoRemarks;

    @Field(type = FieldType.Object,name = "receiveTimeConfig",index = false)
    private ReceiveTimeConfig receiveTimeConfig;

    @Field(type = FieldType.Object,name = "dietTimeConfig",index = false)
    private List<DietTimeConfig> dietTimeConfig;

    @Field(type = FieldType.Object,name = "foodType")
    private List<ProductsType> productsTypes;
}
